iT邦幫忙

2021 iThome 鐵人賽

DAY 20
0
AI & Data

AI ninja project系列 第 20

AI ninja project [day 20] object detection

  • 分享至 

  • xImage
  •  

好的,假設在你的農地旁,
有人或動物不時就發出類似卡車或是車子的聲音,
讓你的手機半夜一直發出警報,
這個時候該怎麼辦呢?

也許我們可以搭配object detection來確認是不是真的有人在偷農作物。

我建議是使用Linux或是用colab的環境來安裝使用object detection,
我曾經成功使用windows系統訓練過一次自己的模型,
但卻不想再成功一次了。
如果想挑戰看看使用windows的環境或是自己訓練辨識特定物件的模型可以參考下面的文件。

object-detection-api 文件
https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/

可以應用像是工廠辨識特殊零件損壞,以及補救維修資訊的顯現。
或是植物特殊的病蟲害資訊顯現,以及應對方法。

但這篇介紹是從已經訓練好的模型來對圖片進行物件辨識。

教學網頁:
https://www.tensorflow.org/hub/tutorials/tf2_object_detection

colab:
https://colab.research.google.com/github/tensorflow/hub/blob/master/examples/colab/tf2_object_detection.ipynb#scrollTo=-y9R0Xllefec

安裝及引入:
https://ithelp.ithome.com.tw/upload/images/20210920/20122678z8upV1UpWa.png

建立將圖片轉成numpy array的function:
https://ithelp.ithome.com.tw/upload/images/20210920/20122678dUOXnFJOWj.png

可供選擇已經訓練好的object detection模型,
如果有更喜歡的可以從tf hub查找,
主要是看有辨識到哪些物件,符不符合需求。
https://ithelp.ithome.com.tw/upload/images/20210920/201226789EEYIxD5w2.png

測試圖片 及
COCO17_HUMAN_POSE_KEYPOINTS:辨識姿勢所需要的list,如果辨識之後不需要看人體姿勢,不放這個list也可以
https://ithelp.ithome.com.tw/upload/images/20210920/20122678kS60XMYyHb.png

安裝Object Detection API
https://ithelp.ithome.com.tw/upload/images/20210920/201226782DzhXbyFi9.png

載入後續需要使用到的功能:
https://ithelp.ithome.com.tw/upload/images/20210920/20122678ChVLfMdoWw.png

那我們將標籤對應輸出的index號碼使用一個字典來保存:
https://ithelp.ithome.com.tw/upload/images/20210920/20122678THF8cbRWmY.png

也可以從github查看這個模型所有的標籤及對應id:
https://github.com/tensorflow/models/blob/master/research/object_detection/data/mscoco_label_map.pbtxt

用tf_hub載入模型:
https://ithelp.ithome.com.tw/upload/images/20210920/201226784iOgdYfRaK.png

將測試圖片轉成numpy array,
如果有需要的話,下面也提供了將圖片翻轉及轉灰階的方法:
https://ithelp.ithome.com.tw/upload/images/20210920/20122678l9GVhjrwwX.png

進行辨識:
https://ithelp.ithome.com.tw/upload/images/20210920/20122678eus8ODIMZj.png

將推論結果作圖:
https://ithelp.ithome.com.tw/upload/images/20210920/201226782H3jv0hcCX.png

https://ithelp.ithome.com.tw/upload/images/20210920/20122678Xw11FIuSuC.png

假設不想看到人體姿勢的辨識,
可以將 keypoint, keypoint_scores, keypoint_edges這三個參數拔除。


上一篇
AI ninja project [day 19] 音訊辨識
下一篇
AI ninja project [day 21] 自動編碼器 Autoencoders
系列文
AI ninja project30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言